先招喚 wiki 大大出來解釋一下 MVC 是甚麼:
MVC模式(Model–view–controller)是軟體工程中的一種軟體架構模式,把軟體系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。
模型(Model) - 程式設計師編寫程式應有的功能(實現演算法等等)、資料庫專家進行資料管理和資料庫設計(可以實現具體的功能)。
視圖(View) - 介面設計人員進行圖形介面設計。
控制器(Controller)- 負責轉發請求,對請求進行處理。
MVC 是一種設計模式,用來拆解程式碼的架構,讓每個角色都只做他們該做的事情,也就是在分類我們的 code。
Rails 有使用到 MVC 架構來分類,MVC 各自在做的事如下:
Model:跟資料有關,負責處理關聯性、驗證、演算法、商業邏輯等等。
像是資料表之間是一對一還是一對多關聯以及哪些欄位一定需要被輸入。
View:跟顯示畫面有關,負責顯示使用者看到的畫面。
Controller:跟動作有關,控制 Model 與 View 間資料的傳遞。
像是要撈哪些資料出來顯示或是是要新增、修改、刪除資料。
像是大公司會分成很多部門,每個部門負責做他們特定的工作,進而維持整間公司的運作。
那 coding 也是一樣,因為如果沒分類 code 的話,寫一個大的專案到後面會發現所有的東西都寫在一起非常混亂,所以才需要打造出一種設計模式,將職責區分清楚,使用這種方式可以更方便的去維護我們寫的 code,也方便其他人來接手你的專案。
而這也不只是可以應用在後端上面,不管前端後端或是 web 以外的地方都可以套用這個概念。
用 Rails 做網頁的時候使用這種架構可以讓工程師在接手一個新專案時更容易維護,因為 Rails 有他自己的慣例,通常工程師都會遵守這個慣例將檔案放在該放的位置方便查找與修改。
參考:
[1]wiki:MVC